const mongoose = require("mongoose")

mongoose.connect("mongodb://127.0.0.1/test")

mongoose.connection.once("open", function () {
    console.log("数据连接成功！！")
});


const Schema = mongoose.Schema;

const stuSchema = new Schema({

    name: String,
    age: Number,
    gender: {
        type: String,
        default: "female"
    },
    address: String

});

const StuModel = mongoose.model("student", stuSchema);

/*
    Document 和 集合中的文档一一对应，Document 是 Model 的实例，
        通过 Model 查询到的结果都是 Document
 */

// 创建一个 Document
const stu = new StuModel({
    name: "唐僧",
    age: 16,
    gender: "male",
    address: "东土大唐"
});

/*
    document 的方法
        Model#save([options],[fn])
 */
/*stu.save(function (err){
    if(!err){
        console.log("保存成功~~~");
    }
})*/

StuModel.findOne({}, function (err, doc) {
    if (!err) {
        /*
            update(update,[options],[callback])
                - 修改对象
            remove([callback])
                - 删除对象
         */

        // console.log(doc);

        /*doc.update({$set: {age: 20}}, function (err) {
            if (!err) {
                console.log("修改成功~~~");
            }
        })*/

        /*doc.age = 18;
        doc.save()*/

        /*doc.remove(function (err){
            if(!err){
                console.log("大师兄再见~~~");
            }
        })*/


        /*
            get(name)
                - 获取文档中的指定属性值
            set(name, value)
                - 设置文档的指定属性值
            id
                - 获取文档的 _id 属性值
            toJSON()
                - 转换为一个 JSON 对象
            toObject()
                - 将 Document 对象转换成一个普通的 JS 对象

         */

        /*console.log(doc.get("name"));
        console.log(doc.age);*/

        /*doc.set("name", "孙行者")
        doc.name = "卡卡罗特"
        console.log(doc);*/

        console.log(doc.id);
        console.log(doc.toJSON());
    }
})









